lcs problem using dynamic programming